package cn.tedu.FileStream;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * Date：2022年01月
 * Author：程Sir
 * Name： JavaSE-API
 * Content:
 * - public void close() ：关闭此输入流并释放与此流相关联的任何系统资源。
 *
 * - public abstract int read() ： 从输入流读取数据的下一个字节。
 *
 * - public int read(byte[] b) ： 从输入流中读取一些字节数，并将它们存储到字节数组 b中 。
 */
public class FISDemo3 {
    public static void main(String[] args) throws IOException {
        method1();
        System.out.println("==============");
        method2();

    }

    private static void method2() throws IOException {
        // 创建文件输入流对象
        FileInputStream fileInputStream = new FileInputStream("a.txt");
        // 创建byte数组，用来装字节的容器
        byte[] bytes = new byte[4];
        // 声明末尾标识
        int a;
        // 循环读取指定文件中的数据
        while ((a = fileInputStream.read(bytes)) != -1){
            // 讲读取到的byte数组以字符串的形式输出
            System.out.println(new String(bytes,0,a));
        }
        // 关闭流连接、释放系统资源
        fileInputStream.close();
    }

    private static void method1() throws IOException {
        // 创建文件输入流对象
        FileInputStream fileInputStream = new FileInputStream("a.txt");
        /*
        // 读取指定文件中的数据
        int a = fileInputStream.read();
        System.out.println((char)a);
        a = fileInputStream.read();
        System.out.println((char)a);
        a =  fileInputStream.read();
        System.out.println((char)a);
        a = fileInputStream.read();
        System.out.println((char)a);
        a =  fileInputStream.read();
        System.out.println((char)a);

        a =  fileInputStream.read();
        System.out.println(a); // -1表示文件的末尾
        */
        // 什么一个表示，就是用来检测-1
        int a;
        while ((a = fileInputStream.read()) != -1) {
            System.out.println((char) a);
        }


        // 关闭流连接，释放系统资源
        fileInputStream.close();
    }

}
